package es.ise.core.mbg.plugins;

import java.util.List;

import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.api.dom.java.TopLevelClass;

/**
 * Este plugin añade los comentarios establecidos en la base de datos para
 * cade columna como un comentario antes de las anotaciones de valicación. 
 * 
 * @author Paco
 */
public class RemarksInCommentsPlugin extends PluginAdapter
{
	/**
	 * {@inheritDoc}
	 * 
	 * @return siempre devuelve <code>true</code> porque no hay comprobaciones que hacer
	 */
	@Override
	public boolean validate(List<String> warnings)
	{
		// no validations needed
		return true;
	}

	@Override
	public boolean modelFieldGenerated(Field field, TopLevelClass clazz, IntrospectedColumn column, IntrospectedTable table, ModelClassType modelClassType)
	{
		if(column.getRemarks() != null && !column.getRemarks().isEmpty())
			field.addJavaDocLine("// "+column.getRemarks());
		return true;
	}
	

}
